package br.com.sgpv2.service.contrato;

import java.util.List;

import br.com.sgpv2.controler.NegocioExeception;
import br.com.sgpv2.entity.pessoa.Contrato;
import br.com.sgpv2.entity.pessoa.Pessoa;

public interface ContratoService {

	/** Método que salva uma entidade Contrato no banco de dados. */
	Contrato salvar(Contrato contrato) throws Exception;

	/** Método que altera uma entidade Contrato no banco de dados. */
	void alterar(Contrato contrato);

	/** Método que lista todas as entidades Contrato do banco de dados. */
	List<Contrato> listar() throws Exception;

	/** Método que remove uma entidade Contrato no banco de dados. */
	void remover(Contrato contrato) throws Exception;

	/** Método que busca uma entidade Contrato do banco de dados. */
	Contrato buscar(Integer pk) throws NegocioExeception;

	/** Método que consulta todos os contratos de uma pessoa(titular). */
	List<Contrato> consultarPorTitular(Pessoa pessoa)
			throws NegocioExeception;

	/** Método que altera o contrato. */
	void saveOrUpdate(Contrato contrato);
	
	Contrato buscarPorMatricula(String matriculaContrato);

}
